The usefulness of spreadsheet applications, such as Microsoft Excel™, Lotus 1-2-3™, and the like, in business and other environments is well known. For example, in the financial departments of many organizations, financial analysts use spreadsheets as their calculation tools to consolidate and massage data, produce charts and the like. A typical spreadsheet operates using cells and formulas. For example, in a typical electronic spreadsheet created by a spreadsheet application, one or more cells will be used as fields or placeholders for input values. Another cell will comprise a formula, which operates on these input value(s), and the cell will then display an output value, representing a result of the formula. (Of course the output of one formula can, and often is, used as the input for formula(s) associated with one or more other cells.
This allows a great deal of flexibility, in that a user can quickly change the input value(s), and the spreadsheet application will provide a new output value based on the new input value(s). This combination of cells and formulas can be considered the “calculation model” of the spreadsheet. This calculation model specifies how various input values are to be identified and processed by the spreadsheet application.
Given the utility of spreadsheet applications at processing data, especially financial data, users often want to create business reports from a spreadsheet (e.g., from the input and/or output cells). Typically, however, spreadsheet applications do not provide robust reporting features, so to convert a spreadsheet's calculation model into a business report, a programmer generally will have to spend to convert all the calculation model to a standalone applet or application, using various programming languages, such as the JAVA programming language or XSLT. If the user wants to change the calculation model at all (e.g., by changing identification of input cells and/or the formulas for output cells), a new application and/or applet generally will have to be created.
Furthermore, while spreadsheet applications are very useful in allowing a user to provide input data by typing the data into specific cells, they often lack flexibility in accepting input data from other data sources. Merely by way of example, in many cases, data to be processed by the calculation model may be generated and/or provided by other applications (such as business applications, database applications, and the like). Such data might be represented by an XML file, a text file, and/or the like, and/or may be generated by SQL statements in a database application, etc. Often, the user will need to run a data import utility to get the data into the spreadsheet application, adding complexity and expense to the process.